{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 57,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id                     api  count  res_time_sum  res_time_min  \\\n",
       "0  2019162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1      162644  /front-api/bill/create      5        749.12        103.79   \n",
       "2      162742  /front-api/bill/create      5        845.84        136.31   \n",
       "3      162808  /front-api/bill/create      9       1305.52         90.12   \n",
       "4      162943  /front-api/bill/create      3        568.89        138.45   \n",
       "\n",
       "   res_time_max  res_time_avg  interval           createtime  \n",
       "0        177.72         132.0        60  2018-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2018-11-01 00:01:07  \n",
       "2        225.73         169.0        60  2018-11-01 00:02:07  \n",
       "3        196.61         145.0        60  2018-11-01 00:03:07  \n",
       "4        232.02         189.0        60  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 1.请将数据导入pandas中，加上列名，如下图所示 \n",
    "df = pd.read_csv('../pysourse/log.txt',header = None,sep = '\\t')\n",
    "df.head()\n",
    "# 更改列名\n",
    "df.columns = ['id','api','count','res_time_sum','res_time_min','res_time_max','res_time_avg','interval','createtime']\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>api</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>interval</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>/front-api/bill/create</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>60</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id                     api  count  res_time_sum  res_time_min  \\\n",
       "0  2019162542  /front-api/bill/create      8       1057.31         88.75   \n",
       "1      162644  /front-api/bill/create      5        749.12        103.79   \n",
       "2      162742  /front-api/bill/create      5        845.84        136.31   \n",
       "3      162808  /front-api/bill/create      9       1305.52         90.12   \n",
       "4      162943  /front-api/bill/create      3        568.89        138.45   \n",
       "\n",
       "   res_time_max  res_time_avg  interval           createtime  \n",
       "0        177.72         132.0        60  2018-11-01 00:00:07  \n",
       "1        240.38         149.0        60  2018-11-01 00:01:07  \n",
       "2        225.73         169.0        60  2018-11-01 00:02:07  \n",
       "3        196.61         145.0        60  2018-11-01 00:03:07  \n",
       "4        232.02         189.0        60  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 2. 检测是否有重复值\n",
    "df['api'].describe()  #可以看出api这列是相同的\n",
    "\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 61,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count    179496.0\n",
       "mean         60.0\n",
       "std           0.0\n",
       "min          60.0\n",
       "25%          60.0\n",
       "50%          60.0\n",
       "75%          60.0\n",
       "max          60.0\n",
       "Name: interval, dtype: float64"
      ]
     },
     "execution_count": 61,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['interval'].describe()  #可以看出间隔也是一样的"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "metadata": {},
   "outputs": [],
   "source": [
    "# df.interval.unique()  #unique，可以看出只有一个值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 3. 检测是否有异常值"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 4. 分析api和interval这两列的数据是否对分析有用，如果无用，说明为什么后将这两列丢弃\n",
    "# api这一列是完全相同的，interval 也是一样，所以可以删除\n",
    "df = df.drop(['api','interval'],axis = 1)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           id  count  res_time_sum  res_time_min  res_time_max  res_time_avg  \\\n",
       "0  2019162542      8       1057.31         88.75        177.72         132.0   \n",
       "1      162644      5        749.12        103.79        240.38         149.0   \n",
       "2      162742      5        845.84        136.31        225.73         169.0   \n",
       "3      162808      9       1305.52         90.12        196.61         145.0   \n",
       "4      162943      3        568.89        138.45        232.02         189.0   \n",
       "\n",
       "            createtime  \n",
       "0  2018-11-01 00:00:07  \n",
       "1  2018-11-01 00:01:07  \n",
       "2  2018-11-01 00:02:07  \n",
       "3  2018-11-01 00:03:07  \n",
       "4  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "count                  179496\n",
       "unique                 179496\n",
       "top       2019-01-10 17:51:14\n",
       "freq                        1\n",
       "Name: createtime, dtype: object"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['createtime'].describe()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 5. 使用created_at这一列的数据作为时间索引\n",
    "#把索引改成时间,现在这个是字符串类型\n",
    "df.index = df['createtime']  #但这个索引是字符串，改成datetime更灵活\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sum  res_time_min  \\\n",
       "createtime                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "2018-11-01 00:02:07      162742      5        845.84        136.31   \n",
       "2018-11-01 00:03:07      162808      9       1305.52         90.12   \n",
       "2018-11-01 00:04:07      162943      3        568.89        138.45   \n",
       "\n",
       "                     res_time_max  res_time_avg           createtime  \n",
       "createtime                                                            \n",
       "2018-11-01 00:00:07        177.72         132.0  2018-11-01 00:00:07  \n",
       "2018-11-01 00:01:07        240.38         149.0  2018-11-01 00:01:07  \n",
       "2018-11-01 00:02:07        225.73         169.0  2018-11-01 00:02:07  \n",
       "2018-11-01 00:03:07        196.61         145.0  2018-11-01 00:03:07  \n",
       "2018-11-01 00:04:07        232.02         189.0  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "DatetimeIndex(['2018-11-01 00:00:07', '2018-11-01 00:01:07',\n",
       "               '2018-11-01 00:02:07', '2018-11-01 00:03:07',\n",
       "               '2018-11-01 00:04:07', '2018-11-01 00:05:07',\n",
       "               '2018-11-01 00:06:07', '2018-11-01 00:07:07',\n",
       "               '2018-11-01 00:08:07', '2018-11-01 00:09:07',\n",
       "               ...\n",
       "               '2019-05-30 23:01:21', '2019-05-30 23:02:21',\n",
       "               '2019-05-30 23:03:21', '2019-05-30 23:04:21',\n",
       "               '2019-05-30 23:05:21', '2019-05-30 23:06:21',\n",
       "               '2019-05-30 23:07:21', '2019-05-30 23:08:21',\n",
       "               '2019-05-30 23:09:21', '2019-05-30 23:10:21'],\n",
       "              dtype='datetime64[ns]', name='createtime', length=179496, freq=None)"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 把他改成时间索引，转化成时间,使用pandas的to_datetime()\n",
    "df.index = pd.to_datetime(df.createtime)\n",
    "df.index"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 70,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>createtime</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sum  res_time_min  \\\n",
       "createtime                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "2018-11-01 00:02:07      162742      5        845.84        136.31   \n",
       "2018-11-01 00:03:07      162808      9       1305.52         90.12   \n",
       "2018-11-01 00:04:07      162943      3        568.89        138.45   \n",
       "\n",
       "                     res_time_max  res_time_avg           createtime  \n",
       "createtime                                                            \n",
       "2018-11-01 00:00:07        177.72         132.0  2018-11-01 00:00:07  \n",
       "2018-11-01 00:01:07        240.38         149.0  2018-11-01 00:01:07  \n",
       "2018-11-01 00:02:07        225.73         169.0  2018-11-01 00:02:07  \n",
       "2018-11-01 00:03:07        196.61         145.0  2018-11-01 00:03:07  \n",
       "2018-11-01 00:04:07        232.02         189.0  2018-11-01 00:04:07  "
      ]
     },
     "execution_count": 70,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "d:\\program\\python\\python37-32\\lib\\site-packages\\IPython\\core\\inputtransformer2.py:481: UserWarning: `make_tokens_by_line` received a list of lines which do not have lineending markers ('\\n', '\\r', '\\r\\n', '\\x0b', '\\x0c'), behavior will be unspecified\n",
      "  warnings.warn(\"`make_tokens_by_line` received a list of lines which do not have lineending markers ('\\\\n', '\\\\r', '\\\\r\\\\n', '\\\\x0b', '\\\\x0c'), behavior will be unspecified\")\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0xfec0c30>"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 6. 分析api调用次数情况，例如，在一天中，哪些时间是访问高峰，哪些时间段访问比较,如图所示，从凌晨2点到11点访问少，业务高峰出在现下午两三点，晚上八九点  ",
    "5分 \n",
    "df['2019-05-01']['count'].plot()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 7. 分析一天中api响应时间，如下图所示，可以看到在业务高峰时间段，最大响应时间和平均响应时间都有所上升 5分 \n",
    "data = df['2019-5-1'].resample('20T').mean()\n",
    "data[['res_time_sum','res_time_min','res_time_max','res_time_avg']].plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 8. 分析连续的几天数据，可以发现，每天的业务高峰时段都比较相似 5分 \n",
    "# 评估10天的数据\n",
    "df['2019-5-1':'2019-5-10']['count'].plot()\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 9. 分析周末访问量是否有增加。如下图，可以发现，周末的下午和晚上，比非周末访问量多一些 5分 \n",
    "#添加一列，表示他是周几\n",
    "df['weekday'] = df.index.weekday\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>id</th>\n",
       "      <th>count</th>\n",
       "      <th>res_time_sum</th>\n",
       "      <th>res_time_min</th>\n",
       "      <th>res_time_max</th>\n",
       "      <th>res_time_avg</th>\n",
       "      <th>createtime</th>\n",
       "      <th>weekday</th>\n",
       "      <th>weekend</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>createtime</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:00:07</th>\n",
       "      <td>2019162542</td>\n",
       "      <td>8</td>\n",
       "      <td>1057.31</td>\n",
       "      <td>88.75</td>\n",
       "      <td>177.72</td>\n",
       "      <td>132.0</td>\n",
       "      <td>2018-11-01 00:00:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:01:07</th>\n",
       "      <td>162644</td>\n",
       "      <td>5</td>\n",
       "      <td>749.12</td>\n",
       "      <td>103.79</td>\n",
       "      <td>240.38</td>\n",
       "      <td>149.0</td>\n",
       "      <td>2018-11-01 00:01:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:02:07</th>\n",
       "      <td>162742</td>\n",
       "      <td>5</td>\n",
       "      <td>845.84</td>\n",
       "      <td>136.31</td>\n",
       "      <td>225.73</td>\n",
       "      <td>169.0</td>\n",
       "      <td>2018-11-01 00:02:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:03:07</th>\n",
       "      <td>162808</td>\n",
       "      <td>9</td>\n",
       "      <td>1305.52</td>\n",
       "      <td>90.12</td>\n",
       "      <td>196.61</td>\n",
       "      <td>145.0</td>\n",
       "      <td>2018-11-01 00:03:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2018-11-01 00:04:07</th>\n",
       "      <td>162943</td>\n",
       "      <td>3</td>\n",
       "      <td>568.89</td>\n",
       "      <td>138.45</td>\n",
       "      <td>232.02</td>\n",
       "      <td>189.0</td>\n",
       "      <td>2018-11-01 00:04:07</td>\n",
       "      <td>3</td>\n",
       "      <td>False</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                             id  count  res_time_sum  res_time_min  \\\n",
       "createtime                                                           \n",
       "2018-11-01 00:00:07  2019162542      8       1057.31         88.75   \n",
       "2018-11-01 00:01:07      162644      5        749.12        103.79   \n",
       "2018-11-01 00:02:07      162742      5        845.84        136.31   \n",
       "2018-11-01 00:03:07      162808      9       1305.52         90.12   \n",
       "2018-11-01 00:04:07      162943      3        568.89        138.45   \n",
       "\n",
       "                     res_time_max  res_time_avg           createtime  weekday  \\\n",
       "createtime                                                                      \n",
       "2018-11-01 00:00:07        177.72         132.0  2018-11-01 00:00:07        3   \n",
       "2018-11-01 00:01:07        240.38         149.0  2018-11-01 00:01:07        3   \n",
       "2018-11-01 00:02:07        225.73         169.0  2018-11-01 00:02:07        3   \n",
       "2018-11-01 00:03:07        196.61         145.0  2018-11-01 00:03:07        3   \n",
       "2018-11-01 00:04:07        232.02         189.0  2018-11-01 00:04:07        3   \n",
       "\n",
       "                     weekend  \n",
       "createtime                    \n",
       "2018-11-01 00:00:07    False  \n",
       "2018-11-01 00:01:07    False  \n",
       "2018-11-01 00:02:07    False  \n",
       "2018-11-01 00:03:07    False  \n",
       "2018-11-01 00:04:07    False  "
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#判断是不是周末，是不是5，6\n",
    "df['weekend'] = df['weekday'].isin({5,6})\n",
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#在绘制成图形,通过以小时为间隔，看访问次数\n",
    "df.groupby(['weekend',df.index.hour])['count'].mean().unstack(level = 0).plot()\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
